package one.array;

/**
 * 合并两个有序数组
 * 时间复杂度：O(n)
 */
public class Merge_twoSortedArray {
    public static void merge(int[] nums1, int m, int[] nums2, int n) {
        int i = m - 1, j = n - 1, size = m + n - 1;
        while(size >= 0){
            //注意：j<0要放在(i >= 0 && nums1[i] > nums2[j])的前面
            if(j < 0 || (i >= 0 && nums1[i] > nums2[j])){
                nums1[size--] = nums1[i--];
            }else{
                nums1[size--] = nums2[j--];
            }
        }
    }

    public static void main(String[] args) {
        int[] nums1 = {1,2,3,0,0,0};
        int m = 3;
        int[] nums2 = {2,5,6};
        int n = 3;
        merge(nums1, m, nums2, n);
    }
}
